From 5936d4cd74fbbd1629f0dff2aa15753cf0ee28f0 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 29 Jul 2007 09:17:44 +0000 Subject: [PATCH] (dired-mode-map): Bind C-x C-q to dired-toggle-read-only. Filter out menu item "Edit File Names" `wdired-change-to-wdired-mode' when major-mode is not dired-mode. (dired-toggle-read-only): New function. (dired-recursive-deletes): Remove obsolete comments about old default value. (dired-do-flagged-delete, dired-do-delete): Refill docstring. --- lisp/dired.el | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/lisp/dired.el b/lisp/dired.el index 12180856023..1a906093a7a 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1247,7 +1247,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." (define-key map "$" 'dired-hide-subdir) (define-key map "\M-$" 'dired-hide-all) ;; misc - (define-key map "\C-x\C-q" 'wdired-change-to-wdired-mode) + (define-key map "\C-x\C-q" 'dired-toggle-read-only) (define-key map "?" 'dired-summary) (define-key map "\177" 'dired-unmark-backward) (define-key map [remap undo] 'dired-undo) @@ -1353,7 +1353,8 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." (define-key map [menu-bar immediate create-directory] '(menu-item "Create Directory..." dired-create-directory)) (define-key map [menu-bar immediate wdired-mode] - '(menu-item "Edit File Names" wdired-change-to-wdired-mode)) + '(menu-item "Edit File Names" wdired-change-to-wdired-mode + :filter (lambda (x) (if (eq major-mode 'dired-mode) x)))) (define-key map [menu-bar regexp] (cons "Regexp" (make-sparse-keymap "Regexp"))) @@ -1656,6 +1657,16 @@ You can use it to recover marks, killed lines or subdirs." (message "Change in dired buffer undone. Actual changes in files cannot be undone by Emacs.")) +(defun dired-toggle-read-only () + "Edit dired buffer with Wdired, or set it read-only. +Call `wdired-change-to-wdired-mode' in dired buffers whose editing is +supported by Wdired (the major mode of the dired buffer is `dired-mode'). +Otherwise, for buffers inheriting from dired-mode, call `toggle-read-only'." + (interactive) + (if (eq major-mode 'dired-mode) + (wdired-change-to-wdired-mode) + (toggle-read-only))) + (defun dired-next-line (arg) "Move down lines then position at filename. Optional prefix ARG says how many lines to move; default is one line." @@ -2360,7 +2371,7 @@ Optional argument means return a file name relative to `default-directory'." ;; Deleting files -(defcustom dired-recursive-deletes 'top ; Default only delete empty directories. +(defcustom dired-recursive-deletes 'top "*Decide whether recursive deletes are allowed. A value of nil means no recursive deletes. `always' means delete recursively without asking. This is DANGEROUS! @@ -2409,8 +2420,8 @@ Anything else, ask for each sub-directory." "In Dired, delete the files flagged for deletion. If NOMESSAGE is non-nil, we don't display any message if there are no flagged files. -`dired-recursive-deletes' controls whether -deletion of non-empty directories is allowed." +`dired-recursive-deletes' controls whether deletion of +non-empty directories is allowed." (interactive) (let* ((dired-marker-char dired-del-marker) (regexp (dired-marker-regexp)) @@ -2427,8 +2438,8 @@ deletion of non-empty directories is allowed." (defun dired-do-delete (&optional arg) "Delete all marked (or next ARG) files. -`dired-recursive-deletes' controls whether -deletion of non-empty directories is allowed." +`dired-recursive-deletes' controls whether deletion of +non-empty directories is allowed." ;; This is more consistent with the file marking feature than ;; dired-do-flagged-delete. (interactive "P") -- 2.30.2